package com.fin.zw.aiqas.model.response;

import com.fin.zw.aiqas.entity.BaseEntity;
import com.fin.zw.aiqas.entity.InspectionInfo;
import com.fin.zw.aiqas.entity.TaskInfo;
import com.fin.zw.aiqas.entity.UserInfo;
import com.fin.zw.aiqas.enums.ApproveStatus;
import com.fin.zw.aiqas.enums.HitStatus;
import com.fin.zw.aiqas.enums.QualityStatus;
import com.fin.zw.aiqas.enums.ReviewStatus;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import java.util.Date;

@Data
public class InspectionDetailQueryResponse extends BaseEntity {


    /*@ApiModelProperty(notes = "任务id")
    private Long taskId;*/
    @ApiModelProperty(notes = "任务")
    private TaskInfo taskInfo;
    @ApiModelProperty(notes = "客服编号")
    private String serviceCode;

    //添加的
    @ApiModelProperty(notes = "客服名称")
    private String serviceName;

    @ApiModelProperty(notes = "分机号码")
    private String serviceExt;

    //添加的
    @ApiModelProperty(notes = "被叫号码")
    private String answerPhone;
    //添加的
    @ApiModelProperty(notes = "文件名称")
    private String fileName;

    @ApiModelProperty(notes = "机构信息")
    private DepartmentResponse department;
    @ApiModelProperty(notes = "质检状态")
    @Enumerated(EnumType.STRING)
    private QualityStatus qualityStatus;
    @ApiModelProperty(notes = "命中规则")
    private String hitRule;
    @ApiModelProperty(notes = "命中结果")
    private HitStatus hitStatus;
    @ApiModelProperty(notes = "录音时长")
    private Integer voiceLength;
    @ApiModelProperty(notes = "质检时间")
    private Date runDate;
    @ApiModelProperty(notes = "复核时间")
    private Date reviewDate;
    @ApiModelProperty(notes = "复核人")
    private UserInfo reviewUserInfo;
    @ApiModelProperty(notes = "复核意见")
    private String reviewContent;
    @ApiModelProperty(notes = "复议申请时间")
    private Date applyTime;
    @ApiModelProperty(notes = "复议审批时间")
    private Date reconsiderDate;
    @ApiModelProperty(notes = "复议审批人员")
    private UserInfo reconsiderUserInfo;
    @ApiModelProperty(notes = "复议申请原因")
    private String reasons;
    @ApiModelProperty(notes = "复议审批意见")
    private String opinion;
    @ApiModelProperty(notes = "质检结果信息")
    private InspectionInfo inspectionInfo;

    //暂时没用上
    @ApiModelProperty(notes = "语音url")
    private String voiceUrl;
    @ApiModelProperty(notes = "复核状态")
    private ReviewStatus reviewStatus;
    @ApiModelProperty(notes = "复议状态")
    private ApproveStatus reconsiderStatus = ApproveStatus.NO_APPLY;


}
